1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace SoftQuanLyNhaHang.Views
12 {
13 public partial class uctKho_KiemTraKho_Form : UserControl
14 {
15 public uctKho_KiemTraKho_Form()
16 {
17 InitializeComponent();
18 }
19
20 //Khởi tạo gọi menu
21 public static uctKho_KiemTraKho_Form uctK_ktk_Form = new uctKho_KiemTraKho_Form();
22
23
24 int _IdKho_KiemKho = 0;
25 string _TrangThai = "SuDung";
26 float _TongSoMatHangTrongKho =0;
27 float _TongSoMatHangKiemKho =0;
28 string _DienGiai = string.Empty;
29
30 int _getDonViTinhId = 0;
31
32 int _IdKho_SpKiemKho = 0;
33 //int _IdKho_KiemKho,
34 string _IdKhoStr = string.Empty;
35 string _MaSanPham = string.Empty;
36 float _TongSoTonKho = 0;
37 float _SoLuongSanPham_KiemKho = 0;
38 DateTime _NgayTaoThucHien = DateTime.Now;
39 int _NhanVienId = 0;
40 string _GhiChu = string.Empty;
41 string _TenSanPham = string.Empty;
42 //int _DonViTinhId = 0;
43 DateTime _NgayKiemKho = DateTime.Now;
44
45 int _pageSize = 30;
46 int _pageIndex = 1;
47 int _tongSoBanGhi = 0;
48 int _stt = 0;
49
50 private void uctKho_KiemTraKho_Load(object sender, EventArgs e)
51 {
52 /*
53 //so luong trong kho
54
55 */
56 this.ActiveControl = txtMaSanPham;
57 }
58
59 private void ClearForm()
60 {
61 txtMaSanPham.Text = "";
62 txtSoLuong.Text = "";
63 txtDienGiai.Text = "";
64 txtTenSanPham.Text = "";
65 txtDvTinh.Text = "";
66 _getDonViTinhId = 0;
67
68 txtSLCongThem.Text = "";
69 }
70
71 private void LuuKiemTraKho()
72 {
73 try
74 {
75 _MaSanPham = txtMaSanPham.Text.Trim();
76 }
77 catch { }
78
79 try
80 {
81 if (string.IsNullOrEmpty(txtSoLuong.Text.Trim()))
82 {
83 MessageBox.Show("Số lượng không được để trống!");
84 txtSoLuong.Focus();
85 return;
86 }
87
88 _SoLuongSanPham_KiemKho = (float)CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim(),true);
89 }
90 catch { }
91
92 try
93 {
94 _GhiChu = txtDienGiai.Text.Trim();
95 }
96 catch { }
97
98 try
99 {
100
101 if (string.IsNullOrEmpty(txtTenSanPham.Text.Trim()))
102 {
103 MessageBox.Show("Tên sản phẩm không được để trống");
104 txtTenSanPham.Focus();
105 return;
106 }
107
108 _TenSanPham = txtTenSanPham.Text.Trim();
109 }
110 catch { }
111
112 _NgayTaoThucHien = DateTime.Now;
113
114 int i = 0;
115
116 if (_IdKho_KiemKho == 0)
117 {
118 _IdKho_KiemKho = Controllers.Kho_KiemKhoCtrl.InsertKho_KiemKho(0, _TrangThai, _TongSoMatHangTrongKho, _TongSoMatHangKiemKho, _DienGiai, _NgayKiemKho);
119 }
120
121 /*
122 //kiem tra da co _IdKho_KiemKho?
123 if(_IdKho_KiemKho == 0){
124 //lay tong so mat hang trong kho
125 DataTable dtTongSp = new DataTable();
126 dtTongSp = Controllers.KhoCtrl.FillDataSet_getKho_COUNT_ByMaVietTat("",-1,"").Tables[0];
127
128 if (dtTongSp.Rows.Count > 0)
129 {
130 _TongSoMatHangTrongKho =float.Parse( dtTongSp.Rows[0]["TongSoMatHangTrongKho"].ToString());
131 }
132
133 _IdKho_KiemKho = Controllers.Kho_KiemKhoCtrl.InsertKho_KiemKho(0, _TrangThai, _TongSoMatHangTrongKho, _TongSoMatHangKiemKho, _DienGiai, _NgayKiemKho);
134 }
135 else
136 {
137 //update kiemkho
138 }
139 */
140
141 DataTable dtk = new DataTable();
142 dtk = Controllers.KhoCtrl.FillDataSet_getKho_Gets_ByMaVietTatTongTonKho(_MaSanPham, -1, _MaSanPham).Tables[0];
143
144 if (dtk.Rows.Count > 0)
145 {
146 _TongSoTonKho = float.Parse(dtk.Rows[0]["TongSoTonKho"].ToString());
147
148 _TongSoMatHangTrongKho = float.Parse(dtk.Rows[0]["TongSoMatHangTrongKho"].ToString());
149
150 //txtTongSoMatHangTrongKho.Text = CauHinhHeThong.Format_SoDeHienThi(_TongSoMatHangTrongKho, false);
151 }
152 else
153 {
154 _TongSoTonKho = 0;
155 }
156
157
158 if(_IdKho_SpKiemKho > 0){
159
160 _SoLuongSanPham_KiemKho = (float)CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim(), true) + (float)(CauHinhHeThong.Format_SoDeTinhToan(txtSLCongThem.Text.Trim(), true));
161
162 Controllers.Kho_SpKiemKhoCtrl.UpdateKho_SpKiemKho(_IdKho_SpKiemKho, _IdKho_KiemKho, _IdKhoStr, _MaSanPham, _TongSoTonKho, _SoLuongSanPham_KiemKho, _TrangThai, _NgayTaoThucHien, _NhanVienId, _GhiChu, _TenSanPham, _getDonViTinhId);
163
164 lblThongBao.Text = "Update thành công!";
165 lblThongBao.Visible = true;
166 }
167 else
168 {
169 i = Controllers.Kho_SpKiemKhoCtrl.InsertKho_SpKiemKho(_IdKho_SpKiemKho, _IdKho_KiemKho, _IdKhoStr, _MaSanPham, _TongSoTonKho, _SoLuongSanPham_KiemKho, _TrangThai, _NgayTaoThucHien, _NhanVienId, _GhiChu, _TenSanPham, _getDonViTinhId);
170
171 lblThongBao.Text = "Lưu thành công!";
172 lblThongBao.Visible = true;
173 }
174
175 ClearForm();
176
177 txtMaSanPham.Focus();
178
179 _pageSize = 30;
180 _pageIndex = 1;
181 _stt = 0;
182
183 this.HienThiDanhSachSpTrongKho(_IdKho_KiemKho);
184
185 }
186
187 private void btnCoCapNhatHangTonKho_Click(object sender, EventArgs e)
188 {
189
190 }
191
192 private void btnKhongCapNhatHangTonKho_Click(object sender, EventArgs e)
193 {
194
195 }
196
197 private void btnLuuVaKiemSau_Click(object sender, EventArgs e)
198 {
199 this.LuuKiemTraKho();
200 }
201
202 private void linkLabel_sanPhamChuaKiemKho_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
203 {
204
205 }
206
207 private void txtSoLuong_TextChanged(object sender, EventArgs e)
208 {
209 try
210 {
211 string value = txtSoLuong.Text.Replace(CauHinhHeThong.PHAN_CACH_HANG_NGHIN, "");
212 ulong ul = 0;
213
214 if (ulong.TryParse(value, out ul))
215 {
216 txtSoLuong.TextChanged -= txtSoLuong_TextChanged;
217
218 if (txtSoLuong.Text.StartsWith("0"))
219 {
220 txtSoLuong.Text = ul.ToString();
221 }
222 else
223 {
224 txtSoLuong.Text = CauHinhHeThong.DoFormat_NhapSoTrongText(value);
225 }
226
227
228 txtSoLuong.SelectionStart = txtSoLuong.Text.Length;
229 txtSoLuong.TextChanged += txtSoLuong_TextChanged;
230 }
231 else
232 {
233 if (txtSoLuong.Text.StartsWith(CauHinhHeThong.DAU_PHAY))
234 {
235 txtSoLuong.TextChanged -= txtSoLuong_TextChanged;
236 txtSoLuong.Text = "0" + txtSoLuong.Text;
237 txtSoLuong.SelectionStart = txtSoLuong.Text.Length;
238 txtSoLuong.TextChanged += txtSoLuong_TextChanged;
239 }
240 }
241
242 }
243 catch
244 {
245 }
246 }
247
248 private void txtSoLuong_KeyPress(object sender, KeyPressEventArgs e)
249 {
250 CauHinhHeThong.NhapSoTrongTextBox(sender, e);
251 }
252
253 private void txtMaSanPham_KeyDown(object sender, KeyEventArgs e)
254 {
255 if (e.KeyCode == Keys.Enter)
256 {
257
258 e.SuppressKeyPress = true;
259
260 lblThongBao.Text = "";
261 lblThongBao.Visible = false;
262
263 try
264 {
265 _MaSanPham = txtMaSanPham.Text.Trim();
266
267 }
268 catch { }
269
270 if (_IdKho_KiemKho > 0)
271 {
272 //insert sp kiem kho
273 //kiểm tra sản phẩm trong bảng spkiemkho
274 DataTable dtKtTonTai = new DataTable();
275
276 dtKtTonTai = Controllers.Kho_SpKiemKhoCtrl.FillDataSet_getKho_SpKiemKho_KiemTraDaTonTai(_IdKho_SpKiemKho, _IdKho_KiemKho, _MaSanPham, _TrangThai).Tables[0];
277 if (dtKtTonTai.Rows.Count > 0)
278 {
279 float soKiemKhoTruoc =(float)CauHinhHeThong.Format_SoDeTinhToan(dtKtTonTai.Rows[0]["SoLuongKiemKho"].ToString(), false);
280
281 txtSLCongThem.Text = "+" + CauHinhHeThong.Format_SoDeHienThi(soKiemKhoTruoc, true);
282
283 txtTenSanPham.Text = dtKtTonTai.Rows[0]["TenSanPham"].ToString();
284 txtDvTinh.Text = dtKtTonTai.Rows[0]["TenDonViTinh"].ToString();
285 _getDonViTinhId = int.Parse(dtKtTonTai.Rows[0]["DonViTinhId"].ToString());
286
287 _IdKho_SpKiemKho = Int32.Parse(dtKtTonTai.Rows[0]["IdKho_SpKiemKho"].ToString());
288
289 txtSoLuong.Text = "1";
290
291 txtSoLuong.Focus();
292 //Controllers.Kho_SpKiemKhoCtrl.UpdateKho_SpKiemKho(_IdKho_SpKiemKho, _IdKho_KiemKho, _IdKhoStr, _MaSanPham, _SoLuongTrongKho, _SoLuongKiemKho, _TrangThai, _NgayTaoThucHien, _NhanVienId, _GhiChu, _TenSanPham, _DonViTinhId);
293
294 //lblThongBao.Text = "Update thành công!";
295 }
296 else
297 {
298 _IdKho_SpKiemKho = 0;
299
300 //lấy thông tin sản phẩm trong kho có mã viết tăt là masanpham
301 DataTable dtKho = new DataTable();
302 dtKho = Controllers.KhoCtrl.FillDataSet_getKho_ByMaVietTat("", -1, _MaSanPham).Tables[0];
303
304 if (dtKho.Rows.Count > 0)
305 {
306 txtTenSanPham.Text = dtKho.Rows[0]["TenSanPham"].ToString();
307 txtDvTinh.Text = dtKho.Rows[0]["TenDonViTinh"].ToString();
308 _getDonViTinhId = int.Parse(dtKho.Rows[0]["DonViTinhId"].ToString());
309
310 txtSoLuong.Text = "1";
311 txtSoLuong.Focus();
312 }
313 else
314 {
315 MessageBox.Show("Sảm phẩm không tồn tại trên hệ thống!");
316 }
317 }
318 }
319 else
320 {
321
322 //lấy thông tin sản phẩm trong kho có mã viết tăt là masanpham
323 DataTable dtKho = new DataTable();
324 dtKho = Controllers.KhoCtrl.FillDataSet_getKho_ByMaVietTat("", -1, _MaSanPham).Tables[0];
325
326 if (dtKho.Rows.Count > 0)
327 {
328 txtTenSanPham.Text = dtKho.Rows[0]["TenSanPham"].ToString();
329 txtDvTinh.Text = dtKho.Rows[0]["TenDonViTinh"].ToString();
330 _getDonViTinhId = int.Parse(dtKho.Rows[0]["DonViTinhId"].ToString());
331
332 txtSoLuong.Text = "1";
333 txtSoLuong.Focus();
334 }
335 else
336 {
337 MessageBox.Show("Sảm phẩm không tồn tại trên hệ thống!");
338 }
339 }
340 }
341 }
342
343 public void HienThiDanhSachSpTrongKho(int idKiemKho)
344 {
345 this.ActiveControl = txtMaSanPham;
346
347 _IdKho_KiemKho = idKiemKho;
348
349 //hiển thị thông tin tồn kho
350 //TongSoMatHangTrongKho
351
352 dgvDsSpTrongKho.Rows.Clear();
353 //Ẩn cột đầu tiên
354 dgvDsSpTrongKho.RowHeadersVisible = false;
355 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
356 this.dgvDsSpTrongKho.Columns["STTKk"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
357 this.dgvDsSpTrongKho.Columns["STTKk"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
358 //this.dgvDsSpTrongKho.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
359
360
361 this.dgvDsSpTrongKho.Columns["TenDonViTinhKk"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
362 this.dgvDsSpTrongKho.Columns["TenDonViTinhKk"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
363
364 this.dgvDsSpTrongKho.Columns["SoLuongKiemKhoKk"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
365 this.dgvDsSpTrongKho.Columns["SoLuongKiemKhoKk"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
366 //
367 //
368 this.dgvDsSpTrongKho.Columns["SoLuongTrongKhoKk"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
369 this.dgvDsSpTrongKho.Columns["SoLuongTrongKhoKk"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
370 //
371
372 this.dgvDsSpTrongKho.Columns["SoLuongChenhLech"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
373 this.dgvDsSpTrongKho.Columns["SoLuongChenhLech"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
374
375
376 DataTable dtDsSpKho = new DataTable();
377 dtDsSpKho = Controllers.Kho_SpKiemKhoCtrl.FillDataSet_getKho_SpKiemKho_ByIdKhiemKho(_IdKho_SpKiemKho, _IdKho_KiemKho, _pageSize, _pageIndex).Tables[0];
378
379 if (dtDsSpKho.Rows.Count > 0)
380 {
381 _tongSoBanGhi = Int32.Parse(dtDsSpKho.Rows[0]["TongSoBanGhi"].ToString());
382 //txtTongSoLuongKiem.Text = CauHinhHeThong.Format_SoDeHienThi(_tongSoBanGhi, false);
383
384 float SoLuongTrongKhoKk = 0;
385 float SoLuongKiemKhoKk = 0;
386 float SoLuongChenhLechKk = 0;
387
388 foreach (DataRow item in dtDsSpKho.Rows)
389 {
390 _stt += 1;
391 int n = dgvDsSpTrongKho.Rows.Add();
392
393 dgvDsSpTrongKho.Rows[n].Cells["IdKho_SpKiemKho"].Value = item["IdKho_SpKiemKho"].ToString();
394 dgvDsSpTrongKho.Rows[n].Cells["STTKk"].Value = _stt.ToString();
395
396 dgvDsSpTrongKho.Rows[n].Cells["MaSanPhamKk"].Value = item["MaSanPham"].ToString();
397 dgvDsSpTrongKho.Rows[n].Cells["TenSanPhamKk"].Value = item["TenSanPham"].ToString();
398 dgvDsSpTrongKho.Rows[n].Cells["TenDonViTinhKk"].Value = item["TenDonViTinh"].ToString();
399
400 SoLuongTrongKhoKk = (float)CauHinhHeThong.Format_SoDeTinhToan(item["SoLuongTrongKho"].ToString(), false);
401
402 SoLuongKiemKhoKk = (float)CauHinhHeThong.Format_SoDeTinhToan(item["SoLuongKiemKho"].ToString(), false);
403
404 SoLuongChenhLechKk = SoLuongKiemKhoKk - SoLuongTrongKhoKk;
405
406 dgvDsSpTrongKho.Rows[n].Cells["SoLuongTrongKhoKk"].Value = CauHinhHeThong.Format_SoDeHienThi(SoLuongTrongKhoKk, false);
407 dgvDsSpTrongKho.Rows[n].Cells["SoLuongKiemKhoKk"].Value = CauHinhHeThong.Format_SoDeHienThi(SoLuongKiemKhoKk, false);
408 dgvDsSpTrongKho.Rows[n].Cells["SoLuongChenhLech"].Value = CauHinhHeThong.Format_SoDeHienThi(SoLuongChenhLechKk, false);
409
410
411 dgvDsSpTrongKho.Rows[n].Cells["DienGiai"].Value = item["GhiChu"].ToString();
412
413 }
414
415 }
416 else
417 {
418 _tongSoBanGhi = 0;
419 }
420
421 lblTongSoBanGhiHienThi.Text = CauHinhHeThong.HienThiSoBanGhiTuA_DenB(_pageSize, _pageIndex, _stt.ToString(), _tongSoBanGhi.ToString());
422 }
423
424 }
425 }